(* Copyright (C) 2010 School of Software Engineering, 
 * University of Science and Technology of China.
 *
 * This code is released under a BSD-style license.
 * See the file LICENSE for details.
 *)

signature DICT_STRUCTS =
sig
end

signature DICT =
sig
    include DICT_STRUCTS
    
    type ('a, 'b) t
     
    exception Notfound
              
    val new: {compare: 'a * 'a -> order} -> ('a, 'b) t
    val enter: ('a, 'b) t * 'a * 'b -> ('a, 'b) t
    val layout: ('a, 'b) t * ('a -> Layout.t)
                * ('b -> Layout.t) -> Layout.t
    val lookup: ('a, 'b) t * 'a -> 'b
end
